package com.yilin.tms.core.entity.data.contracted;



import com.baomidou.mybatisplus.annotation.EnumValue;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yilin.tms.core.commons.base.BaseDataEntity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;

/**
 * Created by liuxu :)
 */
@Entity
@Table(name = "data_contract_body")
@TableName("data_contract_body")
public class ContractBody extends BaseDataEntity {

    public enum ContractState {
        going(0, "进行中"),
        success(1, "签订成功"),
        invalid(2, "合同失效");
        @EnumValue
        public Integer index;
        public String name;

        ContractState(Integer index, String name) {
            this.index = index;
            this.name = name;
        }
    }
    @Column(name = "organize_id")
    private String organizeId;//组织ID
    @Column(name = "organize_name")
    private String organizeName;//组织名称
    @Column(name = "contract_state")
    private ContractState contractState; //合同状态
    @Column(name = "matchmaking")
    private Boolean matchmaking;    //撮合业务

    @Column(name = "delivery_no")
    private String deliveryNo; //发货单号
    @Column(name = "shipping_type")
    private String shippingType; //运输方式

    @Column(name = "transit_order_id")
    private String transitOrderId;//运单Id
    @Column(name = "transport_no")
    private String transportNo;//运输单号
    @Column(name = "promise_no")
    private String promiseNo;  //合同编号
    @Column(name = "pdf_url")
    private String pdfUrl;   //pdf下载地址

    @Column(name = "pa_sure_time")
    private String paSureTime;  //甲方确认时间
    @Column(name = "pb_sure_time")
    private String pbSureTime;  //乙方确认时间
    @Column(name = "pc_sure_time")
    private String pcSureTime;  //丙方确认时间

    @Column(name = "pa_party_organize_id")
    private String paPartyOrganizeId; //甲方组织ID
    @Column(name = "pb_party_organize_id")
    private String pbPartyOrganizeId; //乙方组织ID
    @Column(name = "pc_party_organize_id")
    private String pcPartyOrganizeId; //丙方组织ID


    @Column(name = "pa_party_name")
    private String paPartyName; //甲方名称
    @Column(name = "pb_party_name")
    private String pbPartyName; //乙方名称
    @Column(name = "pc_party_name")
    private String pcPartyName; //丙方名称

    @Column(name = "pa_party_principal")
    private String paPartyPrincipal; //甲方负责人
    @Column(name = "pb_party_principal")
    private String pbPartyPrincipal; //乙方负责人
    @Column(name = "pc_party_principal")
    private String pcPartyPrincipal; //丙方负责人

    @Column(name = "pa_party_phone")
    private String paPartyPhone;//甲方电话
    @Column(name = "pb_party_phone")
    private String pbPartyPhone;//乙方电话
    @Column(name = "pc_party_phone")
    private String pcPartyPhone;//丙方电话

    @Column(name = "pa_party_sign")
    private String paPartySign; //甲方签名URL
    @Column(name = "pb_party_sign")
    private String pbPartySign; //乙方签名URL
    @Column(name = "pc_party_sign")
    private String pcPartySign; //丙方签名URL

    @Column(name = "pa_operate_account_id")
    private String paOperateAccountId; //甲方操作人ID
    @Column(name = "pb_operate_account_id")
    private String pbOperateAccountId; //乙方操作人ID
    @Column(name = "pc_operate_account_id")
    private String pcOperateAccountId; //丙方操作人ID

    //运单基本信息
    @Column(name = "start_consignor_address")
    private String startConsignorAddress;  //起点地址
    @Column(name = "end_consignee_address")
    private String endConsigneeAddress;    //终点地址
    @Column(name = "transport_type")
    private String transportType;   //运输类型
    @Column(name = "truck_user_name")
    private String truckUserName;   //司机名称
    @Column(name = "truck_user_phone")
    private String truckUserPhone;  //司机电话
    @Column(name = "truck_no")
    private String truckNo;         //车牌号

    @Column(name = "transportation_cost")
    private Double transportationCost;//运输费用(分配)
    @Column(name = "additional_cost")
    private Double additionalCost;  //附加费用
    @Column(name = "total_cost")
    private Double totalCost;       //订单总费用
    @Column(name = "insurance_cost")
    private Double insuranceCost;   //保单额外费用
    @Column(name = "insurance_amount")
    private Double insuranceAmount; //保单额度

    @Column(name = "total_pay_cost")
    private Double totalPayCost;    //货主付款合计

    @Column(name = "file_id")
    private String fileId; //合同Id 2022-7-20 by liuxu

    @Column(name = "flow_id")
    private String flowId; //流程id 2022-7-20 by liuxu

    public String getOrganizeId() {
        return organizeId;
    }

    public void setOrganizeId(String organizeId) {
        this.organizeId = organizeId;
    }

    public String getOrganizeName() {
        return organizeName;
    }

    public void setOrganizeName(String organizeName) {
        this.organizeName = organizeName;
    }

    public ContractState getContractState() {
        return contractState;
    }

    public void setContractState(ContractState contractState) {
        this.contractState = contractState;
    }

    public Boolean getMatchmaking() {
        return matchmaking;
    }

    public void setMatchmaking(Boolean matchmaking) {
        this.matchmaking = matchmaking;
    }

    public String getDeliveryNo() {
        return deliveryNo;
    }

    public void setDeliveryNo(String deliveryNo) {
        this.deliveryNo = deliveryNo;
    }

    public String getShippingType() {
        return shippingType;
    }

    public void setShippingType(String shippingType) {
        this.shippingType = shippingType;
    }

    public String getTransitOrderId() {
        return transitOrderId;
    }

    public void setTransitOrderId(String transitOrderId) {
        this.transitOrderId = transitOrderId;
    }

    public String getTransportNo() {
        return transportNo;
    }

    public void setTransportNo(String transportNo) {
        this.transportNo = transportNo;
    }

    public String getPromiseNo() {
        return promiseNo;
    }

    public void setPromiseNo(String promiseNo) {
        this.promiseNo = promiseNo;
    }

    public String getPdfUrl() {
        return pdfUrl;
    }

    public void setPdfUrl(String pdfUrl) {
        this.pdfUrl = pdfUrl;
    }

    public String getPaSureTime() {
        return paSureTime;
    }

    public void setPaSureTime(String paSureTime) {
        this.paSureTime = paSureTime;
    }

    public String getPbSureTime() {
        return pbSureTime;
    }

    public void setPbSureTime(String pbSureTime) {
        this.pbSureTime = pbSureTime;
    }

    public String getPcSureTime() {
        return pcSureTime;
    }

    public void setPcSureTime(String pcSureTime) {
        this.pcSureTime = pcSureTime;
    }

    public String getPaPartyOrganizeId() {
        return paPartyOrganizeId;
    }

    public void setPaPartyOrganizeId(String paPartyOrganizeId) {
        this.paPartyOrganizeId = paPartyOrganizeId;
    }

    public String getPbPartyOrganizeId() {
        return pbPartyOrganizeId;
    }

    public void setPbPartyOrganizeId(String pbPartyOrganizeId) {
        this.pbPartyOrganizeId = pbPartyOrganizeId;
    }

    public String getPcPartyOrganizeId() {
        return pcPartyOrganizeId;
    }

    public void setPcPartyOrganizeId(String pcPartyOrganizeId) {
        this.pcPartyOrganizeId = pcPartyOrganizeId;
    }

    public String getPaPartyName() {
        return paPartyName;
    }

    public void setPaPartyName(String paPartyName) {
        this.paPartyName = paPartyName;
    }

    public String getPbPartyName() {
        return pbPartyName;
    }

    public void setPbPartyName(String pbPartyName) {
        this.pbPartyName = pbPartyName;
    }

    public String getPcPartyName() {
        return pcPartyName;
    }

    public void setPcPartyName(String pcPartyName) {
        this.pcPartyName = pcPartyName;
    }

    public String getPaPartyPrincipal() {
        return paPartyPrincipal;
    }

    public void setPaPartyPrincipal(String paPartyPrincipal) {
        this.paPartyPrincipal = paPartyPrincipal;
    }

    public String getPbPartyPrincipal() {
        return pbPartyPrincipal;
    }

    public void setPbPartyPrincipal(String pbPartyPrincipal) {
        this.pbPartyPrincipal = pbPartyPrincipal;
    }

    public String getPcPartyPrincipal() {
        return pcPartyPrincipal;
    }

    public void setPcPartyPrincipal(String pcPartyPrincipal) {
        this.pcPartyPrincipal = pcPartyPrincipal;
    }

    public String getPaPartyPhone() {
        return paPartyPhone;
    }

    public void setPaPartyPhone(String paPartyPhone) {
        this.paPartyPhone = paPartyPhone;
    }

    public String getPbPartyPhone() {
        return pbPartyPhone;
    }

    public void setPbPartyPhone(String pbPartyPhone) {
        this.pbPartyPhone = pbPartyPhone;
    }

    public String getPcPartyPhone() {
        return pcPartyPhone;
    }

    public void setPcPartyPhone(String pcPartyPhone) {
        this.pcPartyPhone = pcPartyPhone;
    }

    public String getPaPartySign() {
        return paPartySign;
    }

    public void setPaPartySign(String paPartySign) {
        this.paPartySign = paPartySign;
    }

    public String getPbPartySign() {
        return pbPartySign;
    }

    public void setPbPartySign(String pbPartySign) {
        this.pbPartySign = pbPartySign;
    }

    public String getPcPartySign() {
        return pcPartySign;
    }

    public void setPcPartySign(String pcPartySign) {
        this.pcPartySign = pcPartySign;
    }

    public String getPaOperateAccountId() {
        return paOperateAccountId;
    }

    public void setPaOperateAccountId(String paOperateAccountId) {
        this.paOperateAccountId = paOperateAccountId;
    }

    public String getPbOperateAccountId() {
        return pbOperateAccountId;
    }

    public void setPbOperateAccountId(String pbOperateAccountId) {
        this.pbOperateAccountId = pbOperateAccountId;
    }

    public String getPcOperateAccountId() {
        return pcOperateAccountId;
    }

    public void setPcOperateAccountId(String pcOperateAccountId) {
        this.pcOperateAccountId = pcOperateAccountId;
    }

    public String getStartConsignorAddress() {
        return startConsignorAddress;
    }

    public void setStartConsignorAddress(String startConsignorAddress) {
        this.startConsignorAddress = startConsignorAddress;
    }

    public String getEndConsigneeAddress() {
        return endConsigneeAddress;
    }

    public void setEndConsigneeAddress(String endConsigneeAddress) {
        this.endConsigneeAddress = endConsigneeAddress;
    }

    public String getTransportType() {
        return transportType;
    }

    public void setTransportType(String transportType) {
        this.transportType = transportType;
    }

    public String getTruckUserName() {
        return truckUserName;
    }

    public void setTruckUserName(String truckUserName) {
        this.truckUserName = truckUserName;
    }

    public String getTruckUserPhone() {
        return truckUserPhone;
    }

    public void setTruckUserPhone(String truckUserPhone) {
        this.truckUserPhone = truckUserPhone;
    }

    public String getTruckNo() {
        return truckNo;
    }

    public void setTruckNo(String truckNo) {
        this.truckNo = truckNo;
    }

    public Double getTransportationCost() {
        return transportationCost;
    }

    public void setTransportationCost(Double transportationCost) {
        this.transportationCost = transportationCost;
    }

    public Double getAdditionalCost() {
        return additionalCost;
    }

    public void setAdditionalCost(Double additionalCost) {
        this.additionalCost = additionalCost;
    }

    public Double getTotalCost() {
        return totalCost;
    }

    public void setTotalCost(Double totalCost) {
        this.totalCost = totalCost;
    }

    public Double getInsuranceCost() {
        return insuranceCost;
    }

    public void setInsuranceCost(Double insuranceCost) {
        this.insuranceCost = insuranceCost;
    }

    public Double getInsuranceAmount() {
        return insuranceAmount;
    }

    public void setInsuranceAmount(Double insuranceAmount) {
        this.insuranceAmount = insuranceAmount;
    }

    public Double getTotalPayCost() {
        return totalPayCost;
    }

    public void setTotalPayCost(Double totalPayCost) {
        this.totalPayCost = totalPayCost;
    }

    public String getFileId() {
        return fileId;
    }

    public void setFileId(String fileId) {
        this.fileId = fileId;
    }

    public String getFlowId() {
        return flowId;
    }

    public void setFlowId(String flowId) {
        this.flowId = flowId;
    }
}
